Unsupervised Learning: Neighbor Embedding
本文介绍了非线性降维的一些算法,包括局部线性嵌入LLE、拉普拉斯特征映射和t分布随机邻居嵌入t-SNE,其中t-SNE特别适用于可视化的应用场景
PCA和Word Embedding介绍了线性降维的思想,而Neighbor Embedding要介绍的是非线性的降维
Manifold Learning
样本点的分布可能是在高维空间里的一个流行(Manifold),也就是说,样本点其实是分布在低维空间里面,只是被扭曲地塞到了一个高维空间里
地球的表面就是一个流行(Manifold),它是一个二维的平面,但是被塞到了一个三维空间里
在Manifold中,只有距离很近的点欧氏距离(Euclidean Distance)才会成立,而在下图的S型曲面中,欧氏距离是无法判断两个样本点的相似程度的
而Manifold Learning要做的就是把这个S型曲面降维展开,把塞在高维空间里的低维空间摊平,此时使用欧氏距离就可以描述样本点之间的相似程度
Locally Linear Embedding
局部线性嵌入,locally linear embedding,简称LLE
假设在原来的空间中,样本点的分布如下所示,我们关注
假设每一个样本点
接下来就要做Dimension Reduction,把
LLE的具体做法如下:
在原先的高维空间中找到
和 之间的关系 以后就把它固定住 使
和 降维到新的低维空间上的 和 和 需要minimize下面的式子: 即在原本的空间里,
可以由周围点通过参数 进行线性组合得到,则要求在降维后的空间里, 也可以用同样的线性组合得到
实际上,LLE并没有给出明确的降维函数,它没有明确地告诉我们怎么从
在实际应用LLE的时候,对
下图给出了原始paper中的实验结果,K太小或太大得到的结果都不太好,注意到在原先的空间里,只有距离很近的点之间的关系需要被保持住,如果K选的很大,就会选中一些由于空间扭曲才导致距离接近的点,而这些点的关系我们并不希望在降维后还能被保留
Laplacian Eigenmaps
Introduction
另一种方法叫拉普拉斯特征映射,Laplacian Eigenmaps
之前在semi-supervised learning有提到smoothness assumption,即我们仅知道两点之间的欧氏距离是不够的,还需要观察两个点在high density区域下的距离
如果两个点在high density的区域里比较近,那才算是真正的接近
我们依据某些规则把样本点建立graph,那么smoothness的距离就可以使用graph中连接两个点路径上的edges数来近似
Review for Smoothness Assumption
简单回顾一下在semi-supervised里的说法:如果两个点
其中
其中如果点
Application in Unsupervised Task
降维的基本原则:如果
注意,与LLE不同的是,这里的
但光有上面这个式子是不够的,假如令所有的z相等,比如令
在semi-supervised中,如果所有label
- 假设降维后
所处的空间为 维,则 ,我们希望降维后的 占据整个 维的空间,而不希望它活在一个比 更低维的空间里 - 最终解出来的
其实就是Graph Laplacian 比较小的特征值所对应的特征向量
这也是Laplacian Eigenmaps名称的由来,我们找的
如果通过拉普拉斯特征映射找到
注:有关拉普拉斯图矩阵的相关内容可参考之前的半监督学习笔记:15_Semi-supervised Learning
参考文献:Belkin, M., Niyogi, P. Laplacian eigenmaps and spectral techniques for embedding and clustering. Advances in neural information processing systems . 2002
t-SNE
t-SNE,全称为T-distributed Stochastic Neighbor Embedding,t分布随机邻居嵌入
Shortage in LLE
前面的方法只假设了相邻的点要接近,却没有假设不相近的点要分开
所以在MNIST使用LLE会遇到下图的情形,它确实会把同一个class的点都聚集在一起,却没有办法避免不同class的点重叠在一个区域,这就会导致依旧无法区分不同class的现象
COIL-20数据集包含了同一张图片进行旋转之后的不同形态,对其使用LLE降维后得到的结果是,同一个圆圈代表同张图像旋转的不同姿态,但许多圆圈之间存在重叠
How t-SNE works
做t-SNE同样要降维,在原来
然后需要将其做归一化:
将
注意,这里的归一化是有必要的,因为我们无法判断在
我们希望找到的投影空间
用于衡量两个分布之间相似度的方法就是KL散度(KL divergence),我们的目标就是让
KL Divergence
这里简单补充一下KL散度的基本知识
KL 散度,最早是从信息论里演化而来的,所以在介绍 KL 散度之前,我们要先介绍一下信息熵,信息熵的定义如下:
其中
在信息熵的基础上,我们定义KL散度为:
How to use
t-SNE会计算所有样本点之间的相似度,运算量会比较大,当数据量大的时候跑起来效率会比较低
常见的做法是对原先的空间用类似PCA的方法先做一次降维,然后用t-SNE对这个简单降维空间再做一次更深层次的降维,以期减少运算量
值得注意的是,t-SNE的式子无法对新的样本点进行处理,一旦出现新的
t-SNE常用于将固定的高维数据可视化到二维平面上
Similarity Measure
如果根据欧氏距离计算降维前的相似度,往往采用RBF function
还有一种叫做SNE的方法,它在降维后的新空间采用与上述相同的相似度算法
对t-SNE来说,它在降维后的新空间所采取的相似度算法是与之前不同的,它选取了t-distribution中的一种,即
以下图为例,假设横轴代表了在原先
你会发现,降维前后相似度从RBF function到t-distribution:
- 如果原先两个点距离(
)比较近,则降维转换之后,它们的相似度( )依旧是比较接近的 - 如果原先两个点距离(
)比较远,则降维转换之后,它们的相似度( )会被拉得更远
也就是说t-SNE可以聚集相似的样本点,同时还会放大不同类别之间的距离,从而使得不同类别之间的分界线非常明显,特别适用于可视化,下图则是对MNIST和COIL-20先做PCA降维,再做t-SNE降维可视化的结果:
Conclusion
小结一下,本文主要介绍了三种非线性降维的算法:
- LLE(Locally Linear Embedding),局部线性嵌入算法,主要思想是降维前后,每个点与周围邻居的线性组合关系不变,
、 - Laplacian Eigenmaps,拉普拉斯特征映射,主要思想是在high density的区域,如果
、 这两个点相似度 高,则投影后的距离 要小 - t-SNE(t-distribution Stochastic Neighbor Embedding),t分布随机邻居嵌入,主要思想是,通过降维前后计算相似度由RBF function转换为t-distribution,在聚集相似点的同时,拉开不相似点的距离,比较适合用在数据固定的可视化领域